package com.hsnn.medstgmini.base.std.service;

import java.util.List;
import java.util.Map;

import com.hsnn.medstgmini.base.std.model.HospInfo;
import com.hsnn.medstgmini.base.std.model.HospInfoLog;
import com.hsnn.medstgmini.sys.model.RegHospInfo;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 医疗机构库
 * @author CCL
 */
public interface StdHospInfoManager {

	/**
	 * @category 查询医疗机构列表
	 * @param page
	 * @param hospInfo
	 * @return
	 */
   Pagination getHospInfoPage(Pagination page, HospInfo hospInfo);

	/**
	 * @category 根据id查询医疗机构信息
	 * @param id
	 * @return
	 */
	HospInfo getHospInfoById(String id);

	/**
	 * @category 保存医疗机构信息
	 * @param hospInfo
	 */
	void saveHospInfo(HospInfo hospInfo, int opType);

	/**
	 * @category 查询医疗机构维护记录列表
	 * @param page
	 * @param hospInfoLog
	 * @return
	 */
	Pagination getHospInfoLogPage(Pagination page,
			HospInfoLog hospInfoLog);


	/**
	 * @category 批量(启用|停用)
	 * @param list
	 */
	void batchChangeStatus(Pagination page);

	/**
	 * @category 查询维护记录修改前修改后记录
	 * @param hospInfoLog
	 * @return
	 */
	List<Map<String,Object>> getHospCompareList(HospInfoLog hospInfoLog);

	/**
	 * @category 校验注册的医疗机构在医疗机构库中是否存在
	 * @date 2015年6月24日
	 * @param hospInfo
	 * @return
	 */
	boolean checkHospExist(RegHospInfo hospInfo);
	
	/**
	 * @category 根据hospCode获取医疗机构
	 * @date 2015年7月28日
	 * @param hospInfoCode
	 * @return
	 */
	List<HospInfo> getHospInfoListByHospCode(String hospInfoCode,String hospId);
	
	/**
	 * @category 根据hospName获取医疗机构
	 * @date 2015年7月28日
	 * @param hospInfoCode
	 * @return
	 */
	List<HospInfo> getHospInfoListByHospName(String hospName,String hospId);

	Pagination getStdHospinfoNoPage(Pagination page);
	
	/**
	 * @category 查询医疗机构数目
	 * @param page
	 * @param projRange
	 * @return
	 */
   Pagination getHospCount(Pagination page);

	HospInfo getHospInfoByCode(String code);
	
	public Map<String, Object> getStdHospInfoByCode(String Code);
	public Map<String, Object> getStdHospInfoDetailById(String id);
}
